﻿// 3433. 吃糖果.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


using namespace std;
/*

https://www.acwing.com/problem/content/3436/
名名的妈妈从外地出差回来，带了一盒好吃又精美的巧克力给名名（盒内共有 N块巧克力）。

妈妈告诉名名每天可以吃一块或者两块巧克力。

假设名名每天都吃巧克力，问名名共有多少种不同的吃完巧克力的方案。

例如：如果 N=1，则名名第 1天就吃掉它，共有 1种方案；如果 N=2，则名名可以第 1
 天吃 1块，第 2天吃 1块，也可以第 1天吃 2块，共有 2种方案；如果 N=3
，则名名第 1天可以吃 1块，剩 2块，也可以第 1天吃 2块剩 1块，所以名名共有 2+1=3种方案；如果 N=4
，则名名可以第 1天吃 1 块，剩 3 块，也可以第 1 天吃 2 块，剩 2 块，共有 3+2=5种方案。

现在给定 N，请你写程序求出名名吃巧克力的方案数目。

输入格式
输入只有 1 行，即整数 N。

输出格式
输出名名吃巧克力的方案数目。

数据范围
1≤N≤20
输入样例：
4
输出样例：
5
*/

const int N = 50;
int dp[N];
int n;

int main()
{
	cin >> n;
	dp[1] = 1; dp[2] = 2;
	for (int i = 3; i <= n; i++) {
		dp[i] = dp[i - 1] + dp[i - 2];
	}
	cout << dp[n] << endl;
}
 